Traditional contact centers use various routing algorithms to route an incoming communication to a specific agent. The communications are routed to the various agents based on criteria, such as phone numbers, information entered by a customer in an Interactive Voice Response (IVR) system, customer preference information, prior contact information, product type, and the like. When the in-bound communications reach the contact center, based on the criteria, a specific agent will be selected to handle the communication. When the agent completes the communication, a second communication is then routed to the agent; the agent will process the second communication in a similar manner as the first. In this model, the agent is not involved in the process of selecting which communications the agent will handle. Instead, the agent just handles the communications that are routed to him.
In contact centers that provide out-bound communications, the contact center initiates an out-bound call to a customer. Once a call is answered by a customer, a particular agent that is available is selected to handle the call. After handling the call, when the agent becomes available, the contact center connects the agent with the next available customer who has been called by the contact center. Again, in this model, the contact center selects which agent will handle the call based on criteria such as the agent being available. Like in the in-bound model, the agent is not involved in the process of determining which calls the agent will handle.